package NGUYENVANDOAN.OOP.EXCERCISES.LEVEL02.EX06;

public class MyInteger {
	//Datafield
	private int value;
    
	//Hàm khởi dựng
    public MyInteger(int value){
        this.value = value;
    }

    //Thuộc tính
    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }
    
    //Nghiệp vụ kiểm tra số Chẵn
    public boolean isEven(){
    	//return (value%2==0) ? true : false;  
    	//C2:
    	if(value%2==0)
    		return true;    
    	return false;
    }
    
    public static boolean isEven(int number){
        return (number%2==0) ? true : false;    	
    }
    
    public static boolean isEven(MyInteger obj){
        return (obj.getValue()%2==0) ? true : false;    	
    }
    
    //Nghiệp vụ kiểm tra số Lẻ
    public boolean isOdd(){
        return (value%2!=0) ? true : false;    	
    }
    
    public static boolean isOdd(int number){
        if(number%2!=0)
            return true;        
        else
            return false;
    }
    
    public static boolean isOdd(MyInteger obj){
    	return (obj.getValue()%2!=0) ? true : false;     	
    }
    
    //Nghiệp vụ kiểm tra số nguyên tố
    public boolean isPrime(){
        boolean prime=false;
        for(int i = 2;i<value;i++){
            prime = true;            
                if(value%i==0){
                    prime=false;
                    break;
                }           
        }
        return prime;
    }
    
    public static boolean isPrime(int number){
        boolean prime=false;
        for(int i = 2;i<number;i++){
            prime = true;          
                if(number%i==0){
                    prime=false;
                    break;
                }           
        }
        return prime;
    }
    
    public static boolean isPrime(MyInteger obj){
        boolean prime=false;
        for(int i = 2;i<obj.value;i++){
            prime = true;          
                if(obj.value%i==0){
                    prime=false;
                    break;
                }       
        }
        return prime;
    }
    
    public boolean equals(int number){
        return (value==number) ? true : false;    // (a>1)?true:false;
        /*
        + Nếu biến value mà bằng(==) number thì(?) nhận giá trị đúng(true)
        Ngược lại(:) thì nhận giá trị Sai(False);
        */
    }
    
    public boolean equals(MyInteger obj){
        return (obj.getValue() == value) ? true : false;
    }
}
